/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.AssociationOverride;
import javax.persistence.AssociationOverrides;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;

/**
 *
 * @author Elias Mendoza
 */
@Entity
@Table(name="persona")
//@AssociationOverrides({
//		@AssociationOverride(name = "direccion", 
//			joinColumns = @JoinColumn(name = "direccion_id",referencedColumnName="id")),
//})
public class Persona implements Serializable{
 
  @Id
  @GeneratedValue(strategy= GenerationType.IDENTITY)
  private int id;
  
  @Column(length=30)
  private String nombre;
  @Column(length=30)
  private String apellidoPaterno;
  @Column(length=30)
  private String apellidoMaterno;
  @Column(nullable=true)
  @Temporal(javax.persistence.TemporalType.DATE)
  private Date fechaNacimiento;
  @Column(length=1)
  private String sexo;
  @Column(length=30,nullable=true)
  private String claveElector;
  
  @OneToOne(cascade={CascadeType.PERSIST, CascadeType.REMOVE})
  @JoinColumn(name="direccion_id",nullable=false)
  private Direccion direccion;
  
  @ManyToOne
  @JoinColumn(name="seccion_id",referencedColumnName="numero",nullable=false)
  private Seccion seccion;
  @OneToOne
  @JoinColumn(name="familia_id",referencedColumnName="id",nullable=false)
  private Amigo amigo;

  public Amigo getAmigo() {
    return amigo;
  }

  public void setAmigo(Amigo amigo) {
    this.amigo = amigo;
  }

  public Seccion getSeccion() {
    return seccion;
  }

  public void setSeccion(Seccion seccion) {
    this.seccion = seccion;
  }
    

  public Direccion getDireccion() {
    return direccion;
  }

  public void setDireccion(Direccion direccion) {
    this.direccion = direccion;
  }

  public String getApellidoMaterno() {
    return apellidoMaterno;
  }

  public void setApellidoMaterno(String apellidoMaterno) {
    this.apellidoMaterno = apellidoMaterno;
  }

  public String getApellidoPaterno() {
    return apellidoPaterno;
  }

  public void setApellidoPaterno(String apellidoPaterno) {
    this.apellidoPaterno = apellidoPaterno;
  }

  public String getClaveElector() {
    return claveElector;
  }

  public void setClaveElector(String claveElector) {
    this.claveElector = claveElector;
  }

  public Date getFechaNacimiento() {
    return fechaNacimiento;
  }

  public void setFechaNacimiento(Date fechaNacimiento) {
    this.fechaNacimiento = fechaNacimiento;
  }

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getNombre() {
    return nombre;
  }

  public void setNombre(String nombre) {
    this.nombre = nombre;
  }

  public String getSexo() {
    return sexo;
  }

  public void setSexo(String sexo) {
    this.sexo = sexo;
  }

  @Override
  public String toString() {
    return seccion+"-"+nombre+" "+apellidoPaterno+" "+ apellidoMaterno;
  }
  
  

  
}
